Delphi - pliki INI
Witam! W tym artykule postaram się nauczyć was jak obsługiwać pliki *.ini w Delphi. Pliki te służą do przechowywania krótkich informacji, na przykład konfiguracji programu. Aby móc korzystać z opisywanych poniżej funkcji, należy do listy modułów dodać bibliotekę IniFiles:
uses
Windows, Messages, SysUtils, Variants, (...), Dialogs, IniFiles;
Plik INI ma następującą budowę:
[SEKCJA]
NazwaKlucza=wartość
InnaNazwa=wartość
[INNA_SEKCJA]
NazwaKlucza=wartość
InnaNazwa=wartość
Zresztą wystarczy odnaleźć na własnym dysku dowolny plik *.ini żeby się o tym przekonać... Możemy tworzyć tyle sekcji i wartości ile nam potrzeba - byle nazwy się nie powtarzały. Korzystanie z takich plików nie jest specjalnie skomplikowane - zresztą zobaczycie sami...
Zapisywanie do pliku INI:
Najpierw zajmiemy się zapisywaniem danych do pliku INI. Załóżmy że na formie znajdują się dwa pola typu edit (o standardowych nazwach - edit1 i edit2), których zawartość ma być zapamiętywana przy wyjściu. Tak więc w akcji OnClose formy wpisujemy:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
PlikINI: TIniFile;
begin
PlikINI := TIniFile.Create('nazwa.ini');
PlikINI.WriteString('POLA_EDIT', 'Pole1', Edit1.text);
PlikINI.WriteString('POLA_EDIT', 'Pole2', Edit2.text);
PlikINI.Free;
end;
To wystarczy, żeby zapisać do pliku wartości obu pól. Tak utworzony plik będzie wyglądał następująco:
[POLA_EDIT]
Pole1=To co wpisaliśmy w edit1
Pole2=To co wpisaliśmy w edit2
No więc po kolei. Najpierw zadeklarowaliśmy zmienną PlikINI (nazwa oczywiście dowolna) jako TIniFile. Potem w TIniFile.Create określiliśmy który plik chcemy modyfikować. Następnie zapisaliśmy w nim dwie wartości podając po kolei nazwę sekcji, nazwę klucza i wartość. Potem zamknęliśmy plik. Teraz jeszcze o nazwie pliku - jeśli tak jak zrobiłem to w przykładzie wpiszemy samą nazwę, bez ścieżki, program otworzy plik ze ścieżki z systemem (najczęściej C:\Windows). Jeśli chcemy aby plik INI znajdował się w tym samym katalogu co program, to jako ścieżkę musimy wpisać:
ExtractFilePath(Application.ExeName)+'nazwa.ini'
Odczytywanie wartości z pliku:
Dobrze, umiemy już zapisywać dane do pliku, ale jak je odczytać? Otóż nie jest to wcale takie trudne. Służy do tego funkcja ReadString. W przykładzie podam kod, który po starcie programu wczyta zapisane wcześniej (w pierwszym przykładzie) wartości dwóch pól edit. W akcji OnCreate wpisujemy:
procedure TForm1.FormCreate(Sender: TObject);
var
PlikINI: TIniFile;
begin
PlikINI := TIniFile.Create('nazwa.ini');
Edit1.text:=PlikINI.ReadString('POLA_EDIT', 'Pole2', 'Pierwsze pole');
Edit2.text:=PlikINI.ReadString('POLA_EDIT', 'Pole2', 'Drugie pole');
PlikINI.Free;
end;
Jako pierwszy parametr funkcji ReadString podajemy sekcję, jako drugi nazwę klucza a jako trzeci - wartość jaka ma być wczytana jeśli nie znaleziono klucza (na przykład przy pierwszym uruchomieniu programu). I tyle... Sami widzicie, że to nic trudnego. Po połączeniu przykładu pierwszego z drugim, powstanie program który zapamiętuje wartości obu pól i wczytuje je po uruchomieniu. I kod takiego programu załączam - jest tutaj. Jeśli czegoś nie rozumiecie albo coś nie wychodzi - piszcie na maila. Tymczasem żegnam się...
Typhoon
typhoon5@o2.pl
|